--[[
描述 ： 文件系统 操作静态方法 类
作者 ： 付大志
修改 ： xxs- android
时间 ： 14/12/01
说明 ： 操作 SDCard数据 通过MLNative.getSDPath得到 sd路径 加上相对路径
        操作 应用预置数据(res/data) 通过MLNative.getAppDataPath得到对应的路径，加上相对路径
]] 

  
MLFile=Class('MLFile'); 
local appSystemClass = AppSystem:new();

--[[
功能   ： 保存lua table 到指定文件
参数   ： path   路径  tab    需要保存的tab
返回   ： 无  
]]
   function MLFile.saveTable(path, tab) 
        if path==nil then
            print('warning:MLFile.saveTable, argument 1 is nil!');
            return;
        end 
        if tab==nil then
            print('warning:MLFile.saveTable, argument 2 is nil!');
            return;
        end 
        return appSystemClass:appSaveTableToFile(path,App.json(tab));	
    end

--[[
功能   ： 从文件里 获取lua table
参数   ： path   路径  
返回   ： 获取的table  
]]  
    function MLFile.loadTable(path) 
         if path==nil then
            print('warning:MLFile.loadTable, argument 1 is nil!');
            return;
        end 
        local hm=appSystemClass:appLoadTableFromFile(path)    
        print('MLNative.LoadTable', path, hm)
        if hm == nil then return  end
        return MLNative.json(hm)
    end

--[[
功能   ： 得到目录子文件
参数   ： path   路径  
返回   ： table  
说明   :  例子：{ {name='a.txt', size=1000, index = 0,dir= true}, {name='a.txt', size=1000, index = 0,dir= true} } 
                 name:文件名,  size:文件大小 index: 文件顺序  dir:是否是目录
                 local num = #files;          -- 文件个数
                 local file = files[1];       -- 获取第一个文件
                 local fileName = file.name;  -- 文件名
                 local fileSize = file.size;  -- 文件大小

]]  
    function MLFile.listFile(path)  
        if path==nil then
            print('warning:MLFile.listFile, argument 1 is nil!');
            return;
        end 
        local hm = appSystemClass:appListFile(path);
        print(hm);
        return App.json(hm)
    end
 
--[[
功能   ： 文件重命名
参数   ： oldName    全路径原始文件名   newName    全路径 新文件名
返回   ： 无  
说明   ： 具有移动功能，当不在一个目录下，会移动到新文件名目录下 
]]  
    function MLFile.renameFile(oldName,  newName)  
        if oldName==nil then
            print('warning:MLFile.renameFile, argument 1 is nil!');
            return;
        end 
        if newName==nil then
            print('warning:MLFile.renameFile, argument 2 is nil!');
            return;
        end 
        appSystemClass:appRenameFile(oldName, newName);
    end

--[[
功能   ： 写文件
参数   ： path    文件路径   data    字符串数据
返回   ： 无  
说明   ： 如果 文件不存在，会自动创建，包括多级目录 
]]  
    function MLFile.writeFile( path,  data) 
        if path==nil then
            print('warning:MLFile.writeFile, argument 1 is nil!');
            return;
        end 
        if data==nil then
            print('warning:MLFile.writeFile, argument 2 is nil!');
            return;
        end  
        appSystemClass:appWriteFile(path ,data);
    end

--[[
功能   ： 读文件
参数   ： path    文件路径    
返回   ： 文件数据.  文件不存在返回nil    
]] 
    function MLFile.readFile( path)
        if path==nil then
            print('warning:MLFile.readFile, argument 1 is nil!');
            return;
        end  
        return appSystemClass:appReadFile(path);
    end

--[[
功能   ： 判断文件是否存在
参数   ： path    文件路径    
返回   ： true or false  
]]  
    function MLFile.fileExists( path)
        if path==nil then
            print('warning:MLFile.fileExists, argument 1 is nil!');
            return;
        end  
        return appSystemClass:appFileExists(path);
    end

--[[
功能   ： 删除文件
参数   ： path    文件路径    
返回   ： 无  
说明   ： path可以是目录，将目录和目录里面的文件全部删掉
]]  
    function MLFile.deleteFile(path)  
        if path==nil then
            print('warning:MLFile.deleteFile, argument 1 is nil!');
            return;
        end  
        appSystemClass:appDeleteFile(path);
    end
